package com.clps.designPatterns.原型模式;

/**
 * 原型模式对象的创建,通过给出一个原型对象来知名创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象
 *
 * 这种形式涉及到三个角色：
 *
 * - 客户(Client)角色：客户类提出创建对象的请求。
 * - 抽象原型(Prototype)角色：这是一个抽象角色，通常由一个Java接口或Java抽象类实现。此角色给出所有的具体原型类所需的接口。
 * - 具体原型（Concrete Prototype）角色：被复制的对象。此角色需要实现抽象的原型角色所要求的接口。
 */
public class C01_Property {
}


/**
 * 原型模式允许在运行时动态改变具体的实现类型,原型模式可以在运行期间,由客户来注册符合接口的实现类型,也可以动态的改变具体的实现类型,看起来接口没哟任何变化,
 * 但是运行已经是另一个类的实例了,因为克隆一个原型的类似实例化一个类
 *
 * 缺点总结:
 * 原型模式主要的缺点就是需要搭配一个克隆的方法,配备克隆的方法需要通盘考虑,
 */